package com.smart.six.locale.applicationcontext;

import org.springframework.context.ApplicationContext;
import org.springframework.context.MessageSource;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.GregorianCalendar;
import java.util.Locale;

/**
 * 测试ApplicationContext国际化信息格式化串
 *
 * @author junrui.wang
 * @create 2018/7/13
 */
public class TestApplicationContextMessageSource {

    public static void main(String[] args){
        ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:com/smart/six/locale/applicationcontext/beans.xml");

        //无需分别加载不同语言，不同国家/地区的本地化资源，仅仅通过资源名就可以加载整套国际化信息资源文件。
        //无需显示使用MessageFormat操作国际化信息
        //applicationContext通过initMessageSource()执行初始化容器中的国际化信息资源,
        //根据反射机制从BeanDefinitionRegistry找出messageSource且类型是org.springframework.context.support.MessageSource的bean，


        Object[] params = {"John", new GregorianCalendar().getTime()};

        String s1 = ac.getMessage("common.common", params, Locale.US);

        System.out.println("us:" + s1);

        //没有被命名为messageSource的话以上代码会拋错误



    }
}
